package br.gov.mi.corporativo.dominio.boundary.rhmi.unidadeestrutura;

import java.util.Date;
import java.util.List;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;

import br.gov.mi.corporativo.dominio.entidade.rhmi.UnidadeEstrutura;

@WebService
public interface UnidadeEstruturaEndPoint {
	
	@WebMethod(operationName = "listarTodosUnidadeEstrutura")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarTodos();
	
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorIdUnidadeEstrutura")
	public @WebResult(name="unidadeEstrutura")UnidadeEstrutura recuperarPorIdUnidadeEstrutura(
		   @WebParam(name="idUnidadeEstrutura") Long idUnidadeEstrutura);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorUnidadeEstruturaByIdUnidadeEstruturaAnterior")
	public @WebResult(name="unidadeEstrutura")UnidadeEstrutura recuperarPorUnidadeEstruturaByIdUnidadeEstruturaAnterior(
		   @WebParam(name="unidadeEstruturaByIdUnidadeEstruturaAnterior") Long unidadeEstruturaByIdUnidadeEstruturaAnterior);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorUnidadeEstruturaByIdUnidadeEstruturaPai")
	public @WebResult(name="listaUnidadeEstrutura")UnidadeEstrutura recuperarPorUnidadeEstruturaByIdUnidadeEstruturaPai(
		   @WebParam(name="unidadeEstruturaByIdUnidadeEstruturaPai") Long unidadeEstruturaByIdUnidadeEstruturaPai);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorTipoUnidadeEstrutura")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorTipoUnidadeEstrutura(
		   @WebParam(name="tipoUnidadeEstrutura") Long tipoUnidadeEstrutura);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorIdPessoaJuridicaUnidade")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorIdPessoaJuridicaUnidade(
		   @WebParam(name="idPessoaJuridicaUnidade") Long idPessoaJuridicaUnidade);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorCdOrgaoSiorg")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorCdOrgaoSiorg(
		   @WebParam(name="cdOrgaoSiorg") Long cdOrgaoSiorg);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorCdOrgaoSiafi")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorCdOrgaoSiafi(
		   @WebParam(name="cdOrgaoSiafi") String cdOrgaoSiafi);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorNmUnidadeEstrutura")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorNmUnidadeEstrutura(
		   @WebParam(name="nmUnidadeEstrutura") String nmUnidadeEstrutura);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorSgUnidadeEstrutura")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorSgUnidadeEstrutura(
		   @WebParam(name="sgUnidadeEstrutura") String sgUnidadeEstrutura);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorDsUnidadeEstrutura")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorDsUnidadeEstrutura(
		   @WebParam(name="dsUnidadeEstrutura") String dsUnidadeEstrutura);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorStEstruturaMi")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorStEstruturaMi(
		   @WebParam(name="stEstruturaMi") String stEstruturaMi);

	@WebMethod(operationName = "recuperarUnidadeEstruturaPorcdOrgaoPoder")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorCdOrgaoPoder(
		   @WebParam(name="cdOrgaoPoder") String cdOrgaoPoder);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPordtInicioVigencia")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorDtInicioVigencia(
		   @WebParam(name="dtInicioVigencia") Date dtInicioVigencia);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPordtTerminoVigencia")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorDtTerminoVigencia(
		   @WebParam(name="dtTerminoVigencia") Date dtTerminoVigencia);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorDsEmail")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorDsEmail(
		   @WebParam(name="dsEmail") String dsEmail);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorCdUasg")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorCdUasg(
		   @WebParam(name="cdUasg") Long cdUasg);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorCdGestao")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorCdGestao(
		   @WebParam(name="cdGestao") Long cdGestao);
	
	@WebMethod(operationName = "recuperarUnidadeEstruturaPorStRegistro")
	public @WebResult(name="listaUnidadeEstrutura")List<UnidadeEstrutura> recuperarPorStRegistro(
		   @WebParam(name="stRegistro") String stRegistro);

}
